--[[
描述 ： UIHeadView控件
作者 ： 付大志
时间 ： 13/08/08
]]

UIHeadView = Class(MLView,'UIHeadView');

UIHeadView.onLeftClick 	= nil;  -- 左键click事件
UIHeadView.onRightClick = nil;	-- 右键click事件
UIHeadView.title 		= nil;  -- title
UIHeadView.left  		= nil;  -- 左button
UIHeadView.right 		= nil;  -- 右button
UIHeadView.viewCtrl 	= nil;  -- 所在的viewcontrller



--[[
功能   ： 初始化 UIHeadView 控件
参数   ： viewCtrl
返回   ： UIHeadView 实例
]]
function UIHeadView:init(viewCtrl,id)
  local sw, sh = viewCtrl.rootView:getWH();
  local w, h = sw, AW(UITheme.HEADVIEW_HEIGHT);
  h = math.ceil(h);
  self:initView(w, h,viewCtrl,id);

  self.viewCtrl = {};
  setmetatable(self.viewCtrl, {__mode="kv"});   -- 弱引用
  self.weekTable.ViewCtrl = viewCtrl;

  self:setBg(UIImage.imageName(UITheme.HEADVIEW_IMG));
  self.title = UILabel.new():init('', w*0.6, h, viewCtrl, 'head titlelab');

  --print('head titlelab',self.title )
  self.title.align = UILabel.ALIGN_CENTER;
  self.title.fontColor = UIColor.COLOR_WHITE;

  self.title.fontHeight = AW(UITheme.HEADVIEW_FONT_HEIGHT);
  self.title:show();

  self:add(self.title, w*0.2, 0);

  -- 创建左button

  self.left = UIButton.new():init(h, h, viewCtrl, 'head leftbutton');
  self.left.bgImage = UIImage.imageName(UITheme.HEADVIEW_BACK_IMG);
  self.left.focusImage = UIImage.imageName(UITheme.HEADVIEW_BACK_FOCUS_IMG);
  self.left:show();

  self.left.onClick =function ()
    if self.onLeftClick then
      self:onLeftClick();
    else
      viewCtrl:pop();
    end
  end

  self:add(self.left, 0, 0);
  self.left:setHidden(true);

  -- 默认隐藏
  -- 创建右button

  self.right = UIButton.new():init(h, h,viewCtrl, 'head right button');
  self.right.bgImage = UIImage.imageName(UITheme.HEADVIEW_PERSON_IMG);
  self.right.focusImage = UIImage.imageName(UITheme.HEADVIEW_PERSON_FOCUS_IMG);
  self.right:show();
  self.right.parent = self;
  self.right.onClick = function ()
    if  self.onRightClick then
      self.onRightClick()
    end
  end
  self:add(self.right, w-h, 0);

  return self;
end


--[[
功能   ： 获取标题高度
参数   ： show  -- 是否显示
返回   ： 实例
]]
function UIHeadView:getHeight()
  return math.ceil(AW(UITheme.HEADVIEW_HEIGHT));
end

--[[
功能   ： 设置title文字
参数   ： show  -- 是否显示
返回   ： 实例
]]
function UIHeadView:setTitle(title)
  if title then
    self.title:setText(title);
    self.title:show();
  end
end

--[[
功能   ： 是否显示返回按钮
参数   ： show  -- 是否显示
返回   ： 实例
]]
function UIHeadView:setLeftHidden(show)
  self.left:setHidden(show);
end

--[[
功能   ：设置右键风格
参数   ： bgImg      --- 背景图片
focusImg   --- 聚集图片
返回   ： 无
]]
function UIHeadView:setLeftTheme (bgImg, focusImg)

  self.left.bgImage = bgImg;
  self.left.focusImage = focusImg;
  self.left:show();

end

--[[
功能   ：设置右键风格
参数   ：
text  文字
bgImg      --- 背景图片
focusImg   --- 聚集图片
color      ----背景颜色
focusColor ----背景聚焦颜色
fh         ----字体大小
返回   ： 无
]]
function UIHeadView:setRightTheme (text, bgImg, focusImg, color, focusColor, fh)

  -- if bgImg then
  self.right.bgImage = bgImg;
  -- end
  -- if focusImg then
  self.right.focusImage = focusImg;
  -- end

  if text then
    self.right.text = text;
  end
  if color then
    self.right.fontColor = color;
  end
  if focusColor then
    self.right.fontFocusColor = focusColor;
  end
  if fh then
    self.right.fontHeight = fh;
  end

  self.right:show();

end

--[[
功能   ： 是否显示返回按钮
参数   ： show  -- 是否显示
返回   ： 实例
]]
function UIHeadView:setRightHidden(show)
  self.right:setHidden(show);
end

--[[
功能   ： 是否创建标题  用于layout布局生成器的解析
参数   ：vc  -- 所在viewCtrl
返回   ： 实例
]]
function UIHeadView.create(vc)
  local w,h = vc.rootView:getWH();

  if vc.contentLayout and  vc.contentLayout ~= '' then  --如果页面显示的是布局生成器的页面
    local data = 0;
    --先遍历json看是否有headView
    local jsoninfo = MLFile.readFile('res/layout/'..vc.contentLayout..'.layout');
    local layout = MLNative.json(jsoninfo);
    if layout then
      local data = UILayout.isHeadView(layout)
      if data == 1  then      --说明是有自制的headView 整屏显示
        UILayout.rootHeight = h;
        local view  = UILayout.parseJson(vc.contentLayout, w, h, vc )
        vc.rootView:add(view); 
        return vc.rootView ;
      else
        if vc.hideHeadView == nil or vc.hideHeadView == false then   --标题存在
          vc.headView = UIHeadView.new():init(vc,'ViewCtrl.hideview');
          vc.headView:setTitle(vc.title);
          
          local headH = vc.headView:getHeight();
          UILayout.rootHeight = h-headH ;
          local content  = UILayout.parseJson(vc.contentLayout, w, h-headH, vc )
          vc.rootView:add(vc.headView, 0, 0);
          vc.rootView:add(content, 0, headH);
          return content ;
        else
          UILayout.rootHeight = h ;
          local content  = UILayout.parseJson(vc.contentLayout, w, h, vc )
          vc.rootView:add(content, 0, 0);
          return vc.rootView ;
        end
      end
    else  print('layout文件不存在.....')
    end
  else
    --显示标题
    if vc.hideHeadView == nil or vc.hideHeadView == false then
      vc.headView = UIHeadView.new():init(vc,'ViewCtrl.hideview');
      vc.headView:setTitle(vc.title);
      
      local headH = vc.headView:getHeight();
      --local w,h = rootView:getWH();
      local content = MLView.new():initView(w, h - headH,vc,'ViewCtrl.content');
      vc.rootView:add(vc.headView, 0, 0);
      vc.rootView:add(content, 0, headH);
      return content ;
    else
      return vc.rootView ;
    end
  end
end


--[[
功能   ： 更新控件
参数   ： 无
返回   ： 无
]]
function UIHeadView:update()

end






